package functii;

import main.Functie;
import operatori.Produs;


public final class Cos extends Functie {
	
	public String derivare() {
		if(getfStang() == null)
			System.exit(1);
		return "(-"+Produs.concatTermens(getfStang().derivare(),Sin.concatTermens(getfStang().toString()))+")";
	}
	
	public double calculDerivata() {
		if(getfStang() == null)
			System.exit(1);
		return - Produs.Calcul(getfStang().calculDerivata(), Sin.Calcul(getfStang().calcul()));
	}

	public String toString() {
		if(getfStang() == null)
			System.exit(1);
		return concatTermeni(getfStang().toString());
	}

	@Override
	public double calcul(double aux1) {
		return Math.cos(aux1);
	}
	
	public static double Calcul(double aux1){
		return Math.cos(aux1);
	}

	@Override
	public String concatTermeni(String aux1) {
		String aux;
		int nrP;
		nrP=aux1.charAt(0)=='(' ? 0:2;
		aux="cos";
		if(nrP!=0) aux+="(";
		aux+=aux1;
		if (nrP!=0) aux+=")";
		return aux;
	}
	
	public static String concatTermens(String aux1) {
		String aux;
		int nrP;
		nrP=aux1.charAt(0)=='(' ? 0:2;
		aux="cos";
		if(nrP!=0) aux+="(";
		aux+=aux1;
		if (nrP!=0) aux+=")";
		return aux;
	}
	
	public double calculeazaValoare() {
		return this.calcul();
	}
}
